Flask এবং FastAPI দিয়ে REST API তৈরি

Machine Learning - কেরাস (Keras) - Model Deployment এবং Production
240

Flask এবং FastAPI দুটি জনপ্রিয় Python ওয়েব ফ্রেমওয়ার্ক যা দিয়ে দ্রুত এবং কার্যকরী RESTful API তৈরি করা যায়। Flask একটি সহজ, মিনিমালিস্ট ফ্রেমওয়ার্ক হলেও, FastAPI একটি অত্যন্ত দ্রুত এবং আধুনিক ফ্রেমওয়ার্ক যা Python 3.6+ এর জন্য বিশেষভাবে ডিজাইন করা হয়েছে এবং এর আসল সুবিধা হল এসিং (Asynchronous) সাপোর্ট এবং স্বয়ংক্রিয় ডকুমেন্টেশন। নিচে Flask এবং FastAPI দিয়ে REST API তৈরি করার একটি উদাহরণ দেওয়া হলো।


১. Flask দিয়ে REST API তৈরি

Flask একটি খুবই লাইটওয়েট এবং মিনিমালিস্ট ওয়েব ফ্রেমওয়ার্ক, যা RESTful API তৈরি করতে সহজ। Flask দিয়ে একটি API তৈরি করার জন্য আপনাকে Flask লাইব্রেরি ইনস্টল করতে হবে এবং একটি route এবং view function তৈরি করতে হবে।

১.১ Flask ইনস্টলেশন

প্রথমে Flask ইনস্টল করুন:

pip install flask

১.২ Flask REST API তৈরি

এখন, আমরা একটি সিম্পল REST API তৈরি করবো যা HTTP GET এবং POST রিকোয়েস্ট গ্রহণ করবে।

from flask import Flask, jsonify, request

app = Flask(__name__)

# GET endpoint
@app.route('/api/greet', methods=['GET'])
def greet():
    return jsonify({"message": "Hello, World!"})

# POST endpoint
@app.route('/api/add', methods=['POST'])
def add():
    data = request.get_json()  # JSON রিকোয়েস্টের ডেটা নিন
    result = data['a'] + data['b']  # a এবং b এর যোগফল বের করুন
    return jsonify({"result": result})

if __name__ == '__main__':
    app.run(debug=True)

১.৩ Flask API ব্যাখ্যা

  • /api/greet: এটি একটি GET রিকোয়েস্ট রিসিভ করে এবং একটি JSON রেসপন্স পাঠায়।
  • /api/add: এটি একটি POST রিকোয়েস্ট গ্রহণ করে এবং রিকোয়েস্টের JSON ডেটা (যেমন a এবং b) ব্যবহার করে যোগফল হিসাব করে রেসপন্স পাঠায়।

১.৪ Flask API চালানো

কোডটি চালাতে, টার্মিনালে নিচের কমান্ডটি দিন:

python app.py

এটি আপনার API লোকাল হোস্টে চালু করবে (সাধারণত http://127.0.0.1:5000/)।


২. FastAPI দিয়ে REST API তৈরি

FastAPI একটি খুব দ্রুত এবং আধুনিক ফ্রেমওয়ার্ক যা Python 3.6+ দিয়ে তৈরি করা হয়েছে। এটি automatic data validation, async support, এবং automatic interactive documentation (Swagger) দিয়ে সুবিধাজনক করে তোলে।

২.১ FastAPI ইনস্টলেশন

FastAPI ইনস্টল করতে, নিচের কমান্ডটি ব্যবহার করুন:

pip install fastapi
pip install uvicorn

uvicorn হল একটি ASGI সার্ভার যা FastAPI এর সাথে কাজ করে।

২.২ FastAPI REST API তৈরি

এখন, আমরা একটি সিম্পল FastAPI REST API তৈরি করবো।

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

# Pydantic মডেল তৈরি (data validation)
class Numbers(BaseModel):
    a: int
    b: int

# GET endpoint
@app.get("/api/greet")
def greet():
    return {"message": "Hello, World!"}

# POST endpoint
@app.post("/api/add")
def add(numbers: Numbers):
    result = numbers.a + numbers.b
    return {"result": result}

২.৩ FastAPI API ব্যাখ্যা

  • /api/greet: এটি একটি GET রিকোয়েস্ট রিসিভ করে এবং একটি JSON রেসপন্স পাঠায়।
  • /api/add: এটি একটি POST রিকোয়েস্ট গ্রহণ করে, যেখানে Numbers ক্লাসের মধ্যে a এবং b নামক দুটি ইনপুট নেয় এবং তাদের যোগফল রিটার্ন করে।

২.৪ FastAPI API চালানো

কোডটি চালাতে, আপনি uvicorn ব্যবহার করতে পারবেন:

uvicorn app:app --reload

এটি আপনার API কে লোকাল হোস্টে চালু করবে (http://127.0.0.1:8000/)।

২.৫ FastAPI এর ফিচার

  • Data validation: pydantic ব্যবহার করে ইনপুট ডেটা অটোমেটিক্যালি যাচাই করা হয়।
  • Interactive API docs: FastAPI আপনাকে Swagger UI এবং ReDoc ডকুমেন্টেশন অটোমেটিক্যালি প্রদান করে। Swagger UI দেখতে http://127.0.0.1:8000/docs এ যান এবং ReDoc দেখতে http://127.0.0.1:8000/redoc এ যান।

৩. Flask এবং FastAPI তুলনা

FeatureFlaskFastAPI
Speedদ্রুত, তবে অপেক্ষাকৃত কম দ্রুতখুব দ্রুত, সঠিকভাবে অ্যাসিঙ্ক্রোনাস
Ease of Useসহজ এবং জনপ্রিয়আধুনিক, উন্নত এবং স্বয়ংক্রিয় ডকুমেন্টেশন
Async SupportLimited (এটি Flask 2.0 এ কিছুটা পাওয়া যায়)সম্পূর্ণ অ্যাসিঙ্ক্রোনাস সমর্থন
Automatic Docsনাহ্যাঁ, Swagger এবং ReDoc ডকুমেন্টেশন
Validationম্যানুয়ালি করতে হয়পিডানটিক দ্বারা স্বয়ংক্রিয় ডেটা ভ্যালিডেশন
Performanceভাল, তবে FastAPI এর তুলনায় কমখুব ভালো, কারণ এটি ASGI সার্ভার ব্যবহার করে

সারাংশ

  • Flask: এটি একটি লাইটওয়েট, মিনিমালিস্ট ফ্রেমওয়ার্ক যা সহজে ব্যবহারযোগ্য এবং REST API তৈরি করতে অনেক জনপ্রিয়। তবে, এতে কিছু সীমাবদ্ধতা রয়েছে যেমন অ্যাসিঙ্ক্রোনাস সাপোর্ট এবং স্বয়ংক্রিয় ডকুমেন্টেশন এর অভাব।
  • FastAPI: এটি একটি অত্যন্ত দ্রুত, আধুনিক এবং ফিচার-প্যাকড ফ্রেমওয়ার্ক যা Python 3.6+ এর জন্য ডিজাইন করা হয়েছে। এটি automatic data validation, async support, এবং interactive documentation সরবরাহ করে, যা API উন্নয়নে সহায়ক।

FastAPI এর অ্যাডভান্সড ফিচার এবং পারফরম্যান্সের কারণে এটি বৃহৎ, স্কেলেবল এবং দ্রুত ওয়েব অ্যাপ্লিকেশন তৈরি করতে উপযুক্ত, বিশেষত যখন অ্যাসিঙ্ক্রোনাস কোডিং এবং দ্রুত API রেসপন্স প্রয়োজন হয়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...